iOS 常用控件之UICollectionView iOS | 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#pragma mark - 懒加载- (UICollectionView *)collectionView { if (!_collectionView) { //UICollectionView的自动布局 UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; //设置滑动方向 //UICollectionViewScrollDirectionHorizontal 水平滑动 //UICollectionViewScrollDirectionVertical 竖直滑动 layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; //下放两个属性可以在这里设置也可以在下方代理中设置(默认10) //设置水平间距(内部) layout.minimumInteritemSpacing = 5; //设置竖直间距(内部) layout.minimumLineSpacing = 5; _collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, SHWidth, SHHeight - 64) collectionViewLayout:layout]; _collectionView.backgroundColor = [UIColor clearColor]; _collectionView.delegate = self; _collectionView.dataSource = self; [self.view addSubview:_collectionView]; //注册cell类 [_collectionView registerNib:[UINib nibWithNibName:reuseIdentifier bundle:[NSBundle mainBundle]] forCellWithReuseIdentifier:reuseIdentifier]; } return _collectionView;}#pragma mark - UICollectionViewDelegate- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1;}- (NSInteger )collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return self.dataSoure.count;}#pragma mark 实例化UICollectionView- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { SHChatBGDetailCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath]; //设置数据 [cell setCellDataSoure:self.dataSoure IndexPath:indexPath select:self.select]; return cell;}#pragma mark 设置item的大小- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { //竖直滑动时: //item排列:最左边的item根据collectionView的最左边的点去做长和高(向左向下),最右边的item根据collectionView的最右边的点去做长和高(向右向下) //水平滑动时: //item排列:最上边和左边的item根据collectionView的最上边和左边的点去做长和高(向左向下),最下边和最左边的item根据collectionView的最下边和最左边的点去做长和高(向右向上) return CGSizeMake((SHWidth - 20)/3, (SHWidth - 20)/3);}#pragma mark collectionView边间距(整体collectionView的上左下右)- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { //上左下右 return UIEdgeInsetsMake(10, 5, 0, 5);}#pragma mark 点击- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath; -------------本文结束感谢阅读-------------